<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewpor" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="./vue.global.js"></script>
</head>

<body>
    <div id="app">
        <h1>我是爹： {{searchText}}</h1>
        <!-- 
        在组件身上放v-model相当于
        1、给子组件注入了一个props :modelValue="searchText"
        2、处理了子组件的自定义事件 @update:modelValue="searchText=$event"
         -->
        <custom-input v-model="searchText"></custom-input>
    </div>



    <script>
        const app = Vue.createApp({
            data(){
                return {
                    searchText:"妹子"
                }
            }
        })

        app.component("custom-input",{
            // 声明接收父组件注入的props
            props:["modelValue"],

            // 声明要向父组件发送的自定义事件
            emits:["update:modelValue"],

            template:`
            <h3>{{modelValue}}</h3>
            <button @click="$emit('update:modelValue',new Date().toString())">更新</button>
            <hr>

            <!-- 
            :value="modelValue" 让input框默认显示父组件注入的props名曰modelValue

            当用户输入时 向父组件发送自定义事件update:modelValue 携带的值就是事件的末梢元素(即input框自己)中的value 即用户当前输入的值
            @input="$emit('update:modelValue',$event.target.value)" 
             -->
            <input type="text" :value="modelValue" @input="$emit('update:modelValue',$event.target.value)">
            `
        })
        
        app.mount('#app')
    </script>
</body>

</html>